#include <iostream>
#include <vector>
#include <algorithm>
#include <cstring>
using namespace std;
const int N=110;
struct node{
	int x,y,w;
	bool operator <(const struct node& p)
	{
		return w<p.w;
	}
};
int n,k;
vector<node> edge;
int f[N];
int Find(int x)
{
	if(f[x]!=x)
		f[x]=Find(f[x]);
	return f[x];
}
int kruscal()
{
	int ret=0;
	for(int i=0;i<edge.size();i++)
	{
		int x=edge[i].x,y=edge[i].y,w=edge[i].w;
		x=Find(x),y=Find(y);
		if(x!=y)
		{
			ret+=w;
			f[x]=y;
		}
	}
	return ret;
}
int main()
{
	cin>>n>>k;
	int sum=0;
	for(int i=0;i<k;i++)
	{
		int x,y,w;
		cin>>x>>y>>w;
		edge.push_back({x,y,w});
		sum+=w;
	}
	for(int i=1;i<=n;i++)
	{
		f[i]=i;
	}
	sort(edge.begin(),edge.end());
	
	cout<<sum-kruscal();
	
	return 0;
}
